import pandas as pdfrom ipyleaflet import Map, TileLayer, GeoJSON, Markerimport ipywidgets as widgetsfrom IPython.display import display# Charger le fichier CSV dans un DataFramechemin_fichier_csv ='Mesure_mensuelle_Region_Occitanie_Polluants_Principaux.csv'df = pd.read_csv(chemin_fichier_csv)# Créer une colonne 'geometry' avec les coordonnées X et Y sous forme de GeoJSONdf['geometry'] = df.apply(lambda row: {"type": "Point", "coordinates": [row['X'], row['Y']]}, axis=1)# Valeur seuilSEUIL_DE_VALEUR_ELEVEE =23.7# Définissez votre seuil ici# Créer une carte avec le service WMTScarte = Map(center=(43.611015, 3.876733), zoom=9)# Ajouter une couche WMTS à la cartewmts_url ="https://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/WMTS"wmts_layer = TileLayer(url=wmts_url, name="WMTS Layer")carte.add_layer(wmts_layer)# Créer une GeoJSON FeatureCollection à partir des données de votre DataFramegeojson_data = {"type": "FeatureCollection","features": []}# Marqueurs pour les valeurs élevéeshigh_value_markers = []for index, row in df.iterrows(): feature = {"type": "Feature","geometry": row['geometry'],"properties": {"nom_dept": row['nom_dept'], "valeur": row['valeur']} } geojson_data['features'].append(feature)# Ajouter un marqueur si la valeur de pollution est élevéeif row['valeur'] > SEUIL_DE_VALEUR_ELEVEE: marker = Marker(location=(row['Y'], row['X']), draggable=False, title=f"Valeur: {row['valeur']}") high_value_markers.append(marker)# Créer une couche GeoJSON pour les zones polluéesgeojson_layer = GeoJSON(data=geojson_data, style={'color': 'red', 'opacity': 0.8, 'weight': 1.5})carte.add_layer(geojson_layer)# Ajouter les marqueurs à la carte# Ajouter les marqueurs à la cartefor marker in high_value_markers: carte.add_layer(marker)# Afficher la carte display(widgets.HBox([carte]))
C:\Users\romeo\anaconda3\lib\site-packages\jupyter_client\session.py:718: UserWarning:
Message serialization failed with:
Out of range float values are not JSON compliant
Supporting this message is deprecated in jupyter-client 7, please make sure your message is JSON-compliant
Carte interactive des mesures mensuelles de la région Occitanie des principaux polluants en microgramme par mètre cube
Résultats moyenne, écart typé, valeur max
#pour calculer la valeur seuil # Calculer la moyenne et l'écart type des valeurs de pollutionmoyenne_pollution = df['valeur'].mean()ecart_type_pollution = df['valeur'].std()# Définir le seuil comme la moyenne plus 2 fois l'écart typeseuil_valeur_elevee = moyenne_pollution +2* ecart_type_pollutionprint("Moyenne de la pollution:", moyenne_pollution)print("Écart type de la pollution:", ecart_type_pollution)print("Seuil de valeur élevée:", seuil_valeur_elevee)
Moyenne de la pollution: 23.731417458945568
Écart type de la pollution: 25.289153037830907
Seuil de valeur élevée: 74.30972353460739